package com.xbongbong.saas.service;

import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.pro.script.pojo.dto.ProductDTO;

/**
 * @author 吴洪波
 * @version v1.0
 * @date 21/12/21 10:22
 * @since v1.0
 */
public interface CostOptimizeExplainService {

    /**
     * 修复库存流水解释
     *
     * @param productDTO 脚本请求类
     * @return 影响范围
     * @throws XbbException 系统异常
     */
    String repairStockFlowBillExplain(ProductDTO productDTO) throws XbbException;

    /**
     * 修复批次流水解释
     *
     * @param productDTO 脚本请求类
     * @return 影响范围
     * @throws XbbException 系统异常
     */
    String repairBatchFlowBillExplain(ProductDTO productDTO) throws XbbException;

    /**
     * 回滚库存流水解释
     *
     * @param productDTO 脚本请求类
     * @return 影响范围
     * @throws XbbException 系统异常
     */
    String rollBackStockFlowBillExplain(ProductDTO productDTO) throws XbbException;

    /**
     * 回滚批次流水解释
     *
     * @param productDTO 脚本请求类
     * @return 影响范围
     * @throws XbbException 系统异常
     */
    String rollBackBatchFlowBillExplain(ProductDTO productDTO) throws XbbException;

    /**
     * 修复成本调整单仓库解释
     *
     * @param productDTO 脚本请求类
     * @return 影响范围
     * @throws XbbException 系统异常
     */
    String repairWarehouseExplain(ProductDTO productDTO) throws XbbException;

    /**
     * 回滚成本调整单仓库解释
     *
     * @param productDTO 脚本请求类
     * @return 影响范围
     * @throws XbbException 系统异常
     */
    String rollBackWarehouseExplain(ProductDTO productDTO) throws XbbException;

}
